package com.project.common.utils;

import com.alibaba.fastjson.JSON;
import com.project.common.enums.CarNumTypeEnum;
import com.project.common.enums.CarTypeEnum;
import com.project.common.enums.ColorEnum;
import com.project.common.enums.DirectionEnum;
import org.springframework.web.client.RestTemplate;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @description
 * @date 2021/9/9 13:17
 */
public class ExposeUtils {

    /**
     * 实现服务器主动推送
     */
    public static void sendMessage(String message) throws IOException {
        RestTemplate restTemplate = new RestTemplate();
        Map<String, Object> result = new HashMap<>();
        Map<String, Object> data = new HashMap<>();
        if (!StringUtils.isEmpty(message)) {
            String[] split = message.split(",");
            for (int i = 0; i < split.length; i++) {
                String[] split1 = split[i].split("=");
                data.put(getDict(split1[0].trim()), split1.length == 2 ? getDictValue(split1[0].trim(), split1[1]) : "");
            }
        }
        String url = "http://39.98.252.137:4600/api/v1/worksheet/addRow";
        result.put("App-Key", "60418ff19680c46862f4ef38");
        result.put("Sign", "7EwH--1mI3-vmDY-gtwTw47NfslUryZMwD7xt.FAUH99jpObXH.qErERd3BZPWHJmHZInaBiX9tW3hX.GvtQBamkiqYuKg1XiDXYPn8Sbcu0XrLgj0pdiRzSglKDtvso");
        result.put("worksheetId", "6113a2191c58e26e7cd65bef");
        result.put("data", JSON.toJSON(data));
        String s = restTemplate.postForObject(url, result, String.class);
    }

    //查询字段
    public static String getDict(String name) {
        switch (name) {
            //设备名称
            case "DeviceId":
                return "input_1628676066790";
            //设备名称长度
            case "DeviceIdLen":
                return "number_1628676093441";
            //通道名称
            case "szDeviceChnName":
                return "input_1628676115988";
            //通道名称长度
            case "nChanNameLen":
                return "number_1628676126635";
            //车牌号
            case "szCarNum":
                return "input_1628676146200";
            //车牌号长度
            case "nCarNumLen":
                return "number_1628676164068";
            //车牌类型
            // 0 未知 ,1 蓝牌 ,2 黄牌 ,3 双层黄尾牌 ,4 警牌,5 武警牌 , 6 部队号牌 ,7 部队双层 ,8 港澳特区号牌 , 9 教练车号牌 ,10 个性号牌 ,11 农用牌
            //12 使馆号牌,13 摩托车号牌,14 拖拉机号牌 ,15 其他号牌, 16 公务车,17 私家车,18 军用 ,19 民航号牌 ,20 黑牌
            case "nCarNumType":
                return "input_1628676180158";
            //车速
            case "nCarSpeed":
                return "number_1628676192590";
            //车类型
            //0 未知 ,1 小型汽车,2 大型汽车,3 使馆汽车, 4 领馆汽车 ,5 境外汽车,6 外籍汽车,7 低速汽车 ,8 拖拉机 ,9 挂车, 10 教练车 , 11 临时行驶车
            //12 警用汽车 ,13 警用摩托车 ,14 普通摩托车 ,15 轻便摩托车,16 机动车 ,17 公交车 ,18 摩托车,19 客车,20 大货车 , 21 中货车 ,22 轿车,23 面包车
            //24 小货车 ,256 非机动车,257 自行车 ,258 三轮车 ,512 行人 ,513 军用车
            case "nCarType":
                return "input_1628676389923";
            //车颜色
            //   0 白 ,1 黑,2 红,3 黄 ,4 灰,5 蓝,6 绿,7 橙,8 紫 ,9 青 ,10 粉 ,11 棕 ,100 其他
            case "nCarColor":
                return "input_1628676406670";
            //车长
            case "nCarLen":
                return "number_1628676416005";
            //行车方向
            // 0 东向西 ,1 西向东 ,2 南向北 , 3 北向南 ,4 东南向西北 ,5 西北向东南 , 6 东北向西南 ,7 西南向东北
            case "nCarDirect":
                return "input_1628676432366";
            //车道号
            case "nWayId":
                return "number_1628676444236";
            //抓图时间
            case "lCaptureTime":
                return "input_1628676474207";
        }
        return name;
    }

    //查询字段
    public static String getDictValue(String name, String value) {
        switch (name) {
            //车牌类型
            // 0 未知 ,1 蓝牌 ,2 黄牌 ,3 双层黄尾牌 ,4 警牌,5 武警牌 , 6 部队号牌 ,7 部队双层 ,8 港澳特区号牌 , 9 教练车号牌 ,10 个性号牌 ,11 农用牌
            //12 使馆号牌,13 摩托车号牌,14 拖拉机号牌 ,15 其他号牌, 16 公务车,17 私家车,18 军用 ,19 民航号牌 ,20 黑牌
            case "nCarNumType":
                return CarNumTypeEnum.getDescByCode(value);
            //车类型
            //0 未知 ,1 小型汽车,2 大型汽车,3 使馆汽车, 4 领馆汽车 ,5 境外汽车,6 外籍汽车,7 低速汽车 ,8 拖拉机 ,9 挂车, 10 教练车 , 11 临时行驶车
            //12 警用汽车 ,13 警用摩托车 ,14 普通摩托车 ,15 轻便摩托车,16 机动车 ,17 公交车 ,18 摩托车,19 客车,20 大货车 , 21 中货车 ,22 轿车,23 面包车
            //24 小货车 ,256 非机动车,257 自行车 ,258 三轮车 ,512 行人 ,513 军用车
            case "nCarType":
                return CarTypeEnum.getDescByCode(value);
            //车颜色
            //   0 白 ,1 黑,2 红,3 黄 ,4 灰,5 蓝,6 绿,7 橙,8 紫 ,9 青 ,10 粉 ,11 棕 ,100 其他
            case "nCarColor":
                return ColorEnum.getDescByCode(value);
            //行车方向
            // 0 东向西 ,1 西向东 ,2 南向北 , 3 北向南 ,4 东南向西北 ,5 西北向东南 , 6 东北向西南 ,7 西南向东北
            case "nCarDirect":
                return DirectionEnum.getDescByCode(value);
        }
        return value;
    }

}
